
--[[

--]]
----local logger=logger;
local MergeFindShopService = Class("com.ea.ctrl.MergeFindShopService")
local cjson = require "cjson";
local dispatchserviceimpl = require "com.ea.ctrl.DispatchServiceImpl";


--[[
   复合接口，将/newportal/31/poscoupon/couponinfo.do接口中的部分返回参数合并到/newseller/42/shop/findshop.do接口返回集合中。
   如果/newseller/42/shop/findshop.do返回的state~=0则无需调用/newportal/31/poscoupon/couponinfo.do接口，
   如果/newportal/31/poscoupon/couponinfo.do接口调用失败或者返回的state~=0则直接返回/newseller/42/shop/findshop.do的结果。
]]

function MergeFindShopService:init()
end

function MergeFindShopService:doService(request, response)

    local v_dispatchserviceimpl=dispatchserviceimpl:new();
      
  local findshop_resp,err = v_dispatchserviceimpl:doService(request,response,"/newseller/42/shop/findshop.do");
  if not findshop_resp or findshop_resp.status ~= 200 then
    response:responseJson( cjson.encode({state=4020002,msg="系统繁忙，请稍后再试",data=nil}));
    --ngx.log(ngx.ERR,logger.formatMsg(sting.format("连接服务器：%s %s 出错!",resultServerRoot,resultUrlPath)));
    return;
  end;
  if ngx.var.APP_DEBUG_LOG== "true" then ngx.log(ngx.DEBUG,findshop_resp.status); end
  if ngx.var.APP_DEBUG_LOG== "true" then ngx.log(ngx.DEBUG,findshop_resp.body); end
  
  local _reqJsonData={"",""};
  _reqJsonData[1]=cjson.decode(findshop_resp.body);
  --请求返回不是0，则立即返回结果。
  if _reqJsonData[1]["state"] ~=0  then 
    response:responseJson(cjson.encode(_reqJsonData[1]));
    return;      
  end;  
  
  
  local couponinfo_resp,err = v_dispatchserviceimpl:doService(request,response,"/newportal/31/poscoupon/couponinfo.do");
  if  couponinfo_resp~=nil and couponinfo_resp~="" and couponinfo_resp.status ==200 then
      if ngx.var.APP_DEBUG_LOG== "true" then ngx.log(ngx.DEBUG,logger.formatMsg(couponinfo_resp.status)); end
      if ngx.var.APP_DEBUG_LOG== "true" then ngx.log(ngx.DEBUG,logger.formatMsg(couponinfo_resp.body)); end
      _reqJsonData[2]=cjson.decode(couponinfo_resp.body);
      --请求返回不是0，则立即返回结果。
      if  _reqJsonData[2]["state"] ==0  then 
          _reqJsonData[1]["data"]["consumeAmount"]=_reqJsonData[2]["data"]["consumeAmount"];
          _reqJsonData[1]["data"]["deductionAmount"]=_reqJsonData[2]["data"]["deductionAmount"];
          _reqJsonData[1]["data"]["deductionLimit"]=_reqJsonData[2]["data"]["deductionLimit"];
          _reqJsonData[1]["data"]["couponId"]=_reqJsonData[2]["data"]["couponId"];
          _reqJsonData[1]["data"]["couponStatus"]=_reqJsonData[2]["data"]["couponStatus"];
          _reqJsonData[1]["data"]["wapUrl"]=_reqJsonData[2]["data"]["wapUrl"];            
      end;     
  end;
  response:responseJson(cjson.encode(_reqJsonData[1]));
  return;  
    
end

return  MergeFindShopService;